package com.mk.seckill.controller;

import com.mk.seckill.pojo.User;
import com.mk.seckill.rabbitmq.MQSender;
import com.mk.seckill.service.IUserService;
import com.mk.seckill.utils.CookieUtil;
import com.mk.seckill.vo.RespBean;
import lombok.extern.java.Log;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@Controller
@RequestMapping("/user")
public class UserController {

	@Autowired
	private IUserService userService;
	@Autowired
	private MQSender mqSender;// 测试mq时使用的

	@RequestMapping("/info")
	@ResponseBody
	public RespBean info(User user) {
		/**
		 * @Author hhwu
		 * @Description //TODO 用户信息(jmeter压力测试时使用)
		 * @Date 16:47 2022/6/8
		 * @Param [user]
		 * @return com.mk.seckill.vo.RespBean
		 **/
		return RespBean.success(user);
	}

	@RequestMapping("/toUpdatePassword")
	public String toUpdatePassword(User user) {
		/**
		 * @Author hhwu
		 * @Description //TODO 跳转到修改密码界面
		 * @Date 10:19 2022/6/9
		 * @Param []
		 * @return java.lang.String
		 **/
		if (user == null) {
			return "login";
		}
		return "updatePassword";
	}

	@RequestMapping("doUpdatePassword")
	public String doUpdatePassword(String password, User user, HttpServletRequest request, HttpServletResponse response) {
		/**
		 * @Author hhwu
		 * @Description //TODO 更新密码
		 * @Date 10:19 2022/6/9
		 * @Param [password, request, response]
		 * @return java.lang.String
		 **/
		String ticket = CookieUtil.getCookieValue(request, "userTicket");
		userService.updatePassword(ticket, password, request, response);

		return "login";
	}













//	 @RequestMapping("/mq")
//	 @ResponseBody
//	 public void mq() {
//		/**
//		 * @Author hhwu
//		 * @Description //TODO 学习rabbitmq,测试发送RabbitMQ消息
//		 * @Date 16:35 2022/6/10
//		 * @Param []
//		 * @return void
//		 **/
//		mqSender.send("Hello");
//	 }

//	 @RequestMapping("/mq/fanout")
//	 @ResponseBody
//	 public void mq01() {
//		/**
//		 * @Author hhwu
//		 * @Description //TODO 学习rabbitmq,测试fanout模式
//		 * @Date 15:10 2022/6/11
//		 * @Param []
//		 * @return void
//		 **/
//	 	mqSender.send("Hello");
//	 }

//	 @RequestMapping("/mq/direct01")
//	 @ResponseBody
//	 public void mq02() {
//		/**
//		 * @Author hhwu
//		 * @Description //TODO 学习rabbitmq,测试direct模式
//		 * @Date 15:10 2022/6/11
//		 * @Param []
//		 * @return void
//		 **/
//	 	mqSender.send01("Hello,Red");
//	 }

//	 @RequestMapping("/mq/direct02")
//	 @ResponseBody
//	 public void mq03() {
//		/**
//		 * @Author hhwu
//		 * @Description //TODO 学习rabbitmq,测试direct模式
//		 * @Date 15:11 2022/6/11
//		 * @Param []
//		 * @return void
//		 **/
//	 	mqSender.send02("Hello,Green");
//	 }

//	 @RequestMapping("/mq/topic01")
//	 @ResponseBody
//	 public void mq04() {
//		/**
//		 * @Author hhwu
//		 * @Description //TODO 学习rabbitmq,测试topic模式
//		 * @Date 15:11 2022/6/11
//		 * @Param []
//		 * @return void
//		 **/
//	 	mqSender.send03("Hello,Red");
//	 }

//	 @RequestMapping("/mq/topic02")
//	 @ResponseBody
//	 public void mq05() {
//		/**
//		 * @Author hhwu
//		 * @Description //TODO 学习rabbitmq,测试topic模式
//		 * @Date 15:11 2022/6/11
//		 * @Param []
//		 * @return void
//		 **/
//	 	mqSender.send04("Hello,Green");
//	 }

//	 @RequestMapping("/mq/header01")
//	 @ResponseBody
//	 public void mq06() {
//		/**
//		 * @Author hhwu
//		 * @Description //TODO 学习rabbitmq,测试header模式
//		 * @Date 15:12 2022/6/11
//		 * @Param []
//		 * @return void
//		 **/
//	 	mqSender.send05("Hello,Header01");
//	 }

//	 @RequestMapping("/mq/header02")
//	 @ResponseBody
//	 public void mq07() {
//		/**
//		 * @Author hhwu
//		 * @Description //TODO 学习rabbitmq,测试header模式
//		 * @Date 15:12 2022/6/11
//		 * @Param []
//		 * @return void
//		 **/
//	 	mqSender.send06("Hello,Header02");
//	 }
}
